<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibTools: CEpollService类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibTools
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.16 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','搜索');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="class_c_epoll_service-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">CEpollService类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_epoll_service_8h_source.html">EpollService.h</a>&gt;</code></p>
<div class="dynheader">
类 CEpollService 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_c_epoll_service.png" usemap="#CEpollService_map" alt=""/>
  <map id="CEpollService_map" name="CEpollService_map">
<area href="class_c_io_port_service.html" alt="CIoPortService" shape="rect" coords="0,0,98,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:aa366ff9aadad69874c0e95b240e938ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#aa366ff9aadad69874c0e95b240e938ed">CEpollService</a> (<a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a> func)</td></tr>
<tr class="separator:aa366ff9aadad69874c0e95b240e938ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ff2b58b1671926d4338676ea7b839e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a8ff2b58b1671926d4338676ea7b839e9">CEpollService</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, <a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a> func)</td></tr>
<tr class="separator:a8ff2b58b1671926d4338676ea7b839e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac914cf8f32c5971a0a710b317887a29d"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ac914cf8f32c5971a0a710b317887a29d">~CEpollService</a> ()</td></tr>
<tr class="separator:ac914cf8f32c5971a0a710b317887a29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79758f99ea45dc977a6962df8377347f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a79758f99ea45dc977a6962df8377347f">Init</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, bool isServer=false)</td></tr>
<tr class="memdesc:a79758f99ea45dc977a6962df8377347f"><td class="mdescLeft">&#160;</td><td class="mdescRight">将sock与tcp绑定，一个socket只能绑定一个tcp服务类  <a href="class_c_epoll_service.html#a79758f99ea45dc977a6962df8377347f">更多...</a><br /></td></tr>
<tr class="separator:a79758f99ea45dc977a6962df8377347f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe35841d40c730849a20e57ce608fe88"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#abe35841d40c730849a20e57ce608fe88">PostAcceptEx</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;svrSock, <a class="el" href="class_c_socket.html">CSocket</a> &amp;cliSock, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=NULL)</td></tr>
<tr class="memdesc:abe35841d40c730849a20e57ce608fe88"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个接收连接请求  <a href="class_c_epoll_service.html#abe35841d40c730849a20e57ce608fe88">更多...</a><br /></td></tr>
<tr class="separator:abe35841d40c730849a20e57ce608fe88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad323799c02b088b56a557dd1a91c6ac1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ad323799c02b088b56a557dd1a91c6ac1">PostConnectEx</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=NULL)</td></tr>
<tr class="memdesc:ad323799c02b088b56a557dd1a91c6ac1"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个连接请求  <a href="class_c_epoll_service.html#ad323799c02b088b56a557dd1a91c6ac1">更多...</a><br /></td></tr>
<tr class="separator:ad323799c02b088b56a557dd1a91c6ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc23d484e502e76a9e7710038e822e53"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#afc23d484e502e76a9e7710038e822e53">SetTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;t)</td></tr>
<tr class="memdesc:afc23d484e502e76a9e7710038e822e53"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置一个定时器  <a href="class_c_epoll_service.html#afc23d484e502e76a9e7710038e822e53">更多...</a><br /></td></tr>
<tr class="separator:afc23d484e502e76a9e7710038e822e53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a98628adcd1758a791c97b4aa9acc27"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a4a98628adcd1758a791c97b4aa9acc27">DelTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;tinfo)</td></tr>
<tr class="memdesc:a4a98628adcd1758a791c97b4aa9acc27"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除定时器  <a href="class_c_epoll_service.html#a4a98628adcd1758a791c97b4aa9acc27">更多...</a><br /></td></tr>
<tr class="separator:a4a98628adcd1758a791c97b4aa9acc27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2157c1dd183cde8099b87c460ca2188c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a2157c1dd183cde8099b87c460ca2188c">UpdateTimer</a> (<a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;tinfo)</td></tr>
<tr class="memdesc:a2157c1dd183cde8099b87c460ca2188c"><td class="mdescLeft">&#160;</td><td class="mdescRight">更新定时器  <a href="class_c_epoll_service.html#a2157c1dd183cde8099b87c460ca2188c">更多...</a><br /></td></tr>
<tr class="separator:a2157c1dd183cde8099b87c460ca2188c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b4f22eb37444814e94c03c9e360bc41"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a2b4f22eb37444814e94c03c9e360bc41">DeliveryWrite</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, const char *first, const char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=NULL)</td></tr>
<tr class="memdesc:a2b4f22eb37444814e94c03c9e360bc41"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个写请求  <a href="class_c_epoll_service.html#a2b4f22eb37444814e94c03c9e360bc41">更多...</a><br /></td></tr>
<tr class="separator:a2b4f22eb37444814e94c03c9e360bc41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b686add2271b0663112d6f854229ffc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a4b686add2271b0663112d6f854229ffc">DeliveryRecv</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, char *first, char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=NULL)</td></tr>
<tr class="memdesc:a4b686add2271b0663112d6f854229ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个接收请求  <a href="class_c_epoll_service.html#a4b686add2271b0663112d6f854229ffc">更多...</a><br /></td></tr>
<tr class="separator:a4b686add2271b0663112d6f854229ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a525a96b60426d812c6146efb866b9279"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a525a96b60426d812c6146efb866b9279">Post</a> (const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker=<a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a>)</td></tr>
<tr class="memdesc:a525a96b60426d812c6146efb866b9279"><td class="mdescLeft">&#160;</td><td class="mdescRight">投递一个中断请求  <a href="class_c_epoll_service.html#a525a96b60426d812c6146efb866b9279">更多...</a><br /></td></tr>
<tr class="separator:a525a96b60426d812c6146efb866b9279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66ee6d1089bf2cd40f7a1417e3a3b4c7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a66ee6d1089bf2cd40f7a1417e3a3b4c7">IsStop</a> () const</td></tr>
<tr class="memdesc:a66ee6d1089bf2cd40f7a1417e3a3b4c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">判断服务是否停止  <a href="class_c_epoll_service.html#a66ee6d1089bf2cd40f7a1417e3a3b4c7">更多...</a><br /></td></tr>
<tr class="separator:a66ee6d1089bf2cd40f7a1417e3a3b4c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855635ef38f2ac3681883c4d04ba4caa"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a855635ef38f2ac3681883c4d04ba4caa">Run</a> ()</td></tr>
<tr class="memdesc:a855635ef38f2ac3681883c4d04ba4caa"><td class="mdescLeft">&#160;</td><td class="mdescRight">运行服务  <a href="class_c_epoll_service.html#a855635ef38f2ac3681883c4d04ba4caa">更多...</a><br /></td></tr>
<tr class="separator:a855635ef38f2ac3681883c4d04ba4caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7843bae0a3a308e4ef61ef54d1e8071"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#af7843bae0a3a308e4ef61ef54d1e8071">Run_One</a> ()</td></tr>
<tr class="memdesc:af7843bae0a3a308e4ef61ef54d1e8071"><td class="mdescLeft">&#160;</td><td class="mdescRight">运行服务,只运行一次  <a href="class_c_epoll_service.html#af7843bae0a3a308e4ef61ef54d1e8071">更多...</a><br /></td></tr>
<tr class="separator:af7843bae0a3a308e4ef61ef54d1e8071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a422f78fde0b5a097ceec14c26fa58827"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a422f78fde0b5a097ceec14c26fa58827">NotifyStop</a> ()</td></tr>
<tr class="memdesc:a422f78fde0b5a097ceec14c26fa58827"><td class="mdescLeft">&#160;</td><td class="mdescRight">通知服务停止  <a href="class_c_epoll_service.html#a422f78fde0b5a097ceec14c26fa58827">更多...</a><br /></td></tr>
<tr class="separator:a422f78fde0b5a097ceec14c26fa58827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc6b0ae9e8d9b39cf2a9f9c1a23ef522"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#acc6b0ae9e8d9b39cf2a9f9c1a23ef522">IsInit</a> () const</td></tr>
<tr class="memdesc:acc6b0ae9e8d9b39cf2a9f9c1a23ef522"><td class="mdescLeft">&#160;</td><td class="mdescRight">判断服务是否停止  <a href="class_c_epoll_service.html#acc6b0ae9e8d9b39cf2a9f9c1a23ef522">更多...</a><br /></td></tr>
<tr class="separator:acc6b0ae9e8d9b39cf2a9f9c1a23ef522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_io_port_service"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_io_port_service')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="class_c_io_port_service.html">CIoPortService</a></td></tr>
<tr class="memitem:a56a36acfa1bc12143465fb5bcd235a5a inherit pub_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a56a36acfa1bc12143465fb5bcd235a5a">CIoPortService</a> (<a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a> func)</td></tr>
<tr class="separator:a56a36acfa1bc12143465fb5bcd235a5a inherit pub_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a26ecd2d08e394ff350d814dc279be inherit pub_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#af3a26ecd2d08e394ff350d814dc279be">~CIoPortService</a> ()</td></tr>
<tr class="separator:af3a26ecd2d08e394ff350d814dc279be inherit pub_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250b7ebec0e43bda54858b198e66c867 inherit pub_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a250b7ebec0e43bda54858b198e66c867">GetFlagId</a> ()</td></tr>
<tr class="memdesc:a250b7ebec0e43bda54858b198e66c867 inherit pub_methods_class_c_io_port_service"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取唯一socket标识符  <a href="class_c_io_port_service.html#a250b7ebec0e43bda54858b198e66c867">更多...</a><br /></td></tr>
<tr class="separator:a250b7ebec0e43bda54858b198e66c867 inherit pub_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bb17ecf133490bae0d660eeeff35f76 inherit pub_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a6bb17ecf133490bae0d660eeeff35f76">SetSocketBuffer</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock, <a class="el" href="class_c_basic_service.html">CBasicService</a> *oldService)</td></tr>
<tr class="memdesc:a6bb17ecf133490bae0d660eeeff35f76 inherit pub_methods_class_c_io_port_service"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置socket的tcp服务buffer  <a href="class_c_io_port_service.html#a6bb17ecf133490bae0d660eeeff35f76">更多...</a><br /></td></tr>
<tr class="separator:a6bb17ecf133490bae0d660eeeff35f76 inherit pub_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedf29d5a0b744177d997d156068545bf inherit pub_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aedf29d5a0b744177d997d156068545bf">SetWriteLog</a> (bool bWriteLog)</td></tr>
<tr class="memdesc:aedf29d5a0b744177d997d156068545bf inherit pub_methods_class_c_io_port_service"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置日志输出函数  <a href="class_c_io_port_service.html#aedf29d5a0b744177d997d156068545bf">更多...</a><br /></td></tr>
<tr class="separator:aedf29d5a0b744177d997d156068545bf inherit pub_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a19230174f8ba4395276b43be2f0b93c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a19230174f8ba4395276b43be2f0b93c3">Init</a> ()</td></tr>
<tr class="memdesc:a19230174f8ba4395276b43be2f0b93c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化EPOLL事件等  <a href="class_c_epoll_service.html#a19230174f8ba4395276b43be2f0b93c3">更多...</a><br /></td></tr>
<tr class="separator:a19230174f8ba4395276b43be2f0b93c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fa3df69807bd345c91be5ccaebe51cd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a9fa3df69807bd345c91be5ccaebe51cd">Close</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock)</td></tr>
<tr class="memdesc:a9fa3df69807bd345c91be5ccaebe51cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">关闭套接字,并解除与服务类的绑定  <a href="class_c_epoll_service.html#a9fa3df69807bd345c91be5ccaebe51cd">更多...</a><br /></td></tr>
<tr class="separator:a9fa3df69807bd345c91be5ccaebe51cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99a9df7333d02353319ef17e201a4c15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a99a9df7333d02353319ef17e201a4c15">HandleRead</a> (<a class="el" href="struct_socket_data.html">SocketData</a> *sockdata)</td></tr>
<tr class="memdesc:a99a9df7333d02353319ef17e201a4c15"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理读完成事件  <a href="class_c_epoll_service.html#a99a9df7333d02353319ef17e201a4c15">更多...</a><br /></td></tr>
<tr class="separator:a99a9df7333d02353319ef17e201a4c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c36cf61efb5d0ccfe983063bec046a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ac6c36cf61efb5d0ccfe983063bec046a">HandleWrite</a> (<a class="el" href="struct_socket_data.html">SocketData</a> *sockdata)</td></tr>
<tr class="memdesc:ac6c36cf61efb5d0ccfe983063bec046a"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理写完成事件  <a href="class_c_epoll_service.html#ac6c36cf61efb5d0ccfe983063bec046a">更多...</a><br /></td></tr>
<tr class="separator:ac6c36cf61efb5d0ccfe983063bec046a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33fea86a364b148b7ddc5102ce9a47ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a33fea86a364b148b7ddc5102ce9a47ae">HandleError</a> (<a class="el" href="struct_socket_data.html">SocketData</a> *sockdata, struct epoll_event *event, CSockError::ErrorType setError)</td></tr>
<tr class="memdesc:a33fea86a364b148b7ddc5102ce9a47ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理错误、关闭事件  <a href="class_c_epoll_service.html#a33fea86a364b148b7ddc5102ce9a47ae">更多...</a><br /></td></tr>
<tr class="separator:a33fea86a364b148b7ddc5102ce9a47ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab45f03755c3e55096572f0e53de87468"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ab45f03755c3e55096572f0e53de87468">HandleTimeout</a> (bool isTimeout)</td></tr>
<tr class="memdesc:ab45f03755c3e55096572f0e53de87468"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理超时时间  <a href="class_c_epoll_service.html#ab45f03755c3e55096572f0e53de87468">更多...</a><br /></td></tr>
<tr class="separator:ab45f03755c3e55096572f0e53de87468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad23338defe1ba3a98a4e4516549161e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ad23338defe1ba3a98a4e4516549161e2">Shutdown</a> ()</td></tr>
<tr class="memdesc:ad23338defe1ba3a98a4e4516549161e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">停止服务  <a href="class_c_epoll_service.html#ad23338defe1ba3a98a4e4516549161e2">更多...</a><br /></td></tr>
<tr class="separator:ad23338defe1ba3a98a4e4516549161e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a8de310d11154bfff2d98effa2bfca8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a7a8de310d11154bfff2d98effa2bfca8">RegisterEvent</a> (<a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> fd, uint32_t events, void *userData, <a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> op=EPOLL_CTL_ADD)</td></tr>
<tr class="separator:a7a8de310d11154bfff2d98effa2bfca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09328d21d7bb9c8a88412b05f8219ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ae09328d21d7bb9c8a88412b05f8219ed">PostCompleteEvent</a> ()</td></tr>
<tr class="memdesc:ae09328d21d7bb9c8a88412b05f8219ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">发送中断事件通知  <a href="class_c_epoll_service.html#ae09328d21d7bb9c8a88412b05f8219ed">更多...</a><br /></td></tr>
<tr class="separator:ae09328d21d7bb9c8a88412b05f8219ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c4cb070c67f1b5bc848566c664d547f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a6c4cb070c67f1b5bc848566c664d547f">Send</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buff, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:a6c4cb070c67f1b5bc848566c664d547f"><td class="mdescLeft">&#160;</td><td class="mdescRight">发送数据  <a href="class_c_epoll_service.html#a6c4cb070c67f1b5bc848566c664d547f">更多...</a><br /></td></tr>
<tr class="separator:a6c4cb070c67f1b5bc848566c664d547f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61e294f650498651530038e824c661f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a61e294f650498651530038e824c661f0">Recv</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buff, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="separator:a61e294f650498651530038e824c661f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a651d7cd9f69f52769ede1541b094d076"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a651d7cd9f69f52769ede1541b094d076">Recvfrom</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buf, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:a651d7cd9f69f52769ede1541b094d076"><td class="mdescLeft">&#160;</td><td class="mdescRight">接收udp数据报文和地址信息  <a href="class_c_epoll_service.html#a651d7cd9f69f52769ede1541b094d076">更多...</a><br /></td></tr>
<tr class="separator:a651d7cd9f69f52769ede1541b094d076"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49ebca36e1c2c905100e90c6ec6b21e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a49ebca36e1c2c905100e90c6ec6b21e7">SendTo</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buf, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:a49ebca36e1c2c905100e90c6ec6b21e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">发送udp报文数据  <a href="class_c_epoll_service.html#a49ebca36e1c2c905100e90c6ec6b21e7">更多...</a><br /></td></tr>
<tr class="separator:a49ebca36e1c2c905100e90c6ec6b21e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbcbcf16e1a3c89c423a04b767a1e2b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#abbcbcf16e1a3c89c423a04b767a1e2b1">AutoRecv</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buf, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:abbcbcf16e1a3c89c423a04b767a1e2b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">自动选择调用Recv/Recvform函数  <a href="class_c_epoll_service.html#abbcbcf16e1a3c89c423a04b767a1e2b1">更多...</a><br /></td></tr>
<tr class="separator:abbcbcf16e1a3c89c423a04b767a1e2b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305f7df841b6f25c13fa8e7262b4d46a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a305f7df841b6f25c13fa8e7262b4d46a">AutoSend</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *buf, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:a305f7df841b6f25c13fa8e7262b4d46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">自动选择调用Send/SendTo函数  <a href="class_c_epoll_service.html#a305f7df841b6f25c13fa8e7262b4d46a">更多...</a><br /></td></tr>
<tr class="separator:a305f7df841b6f25c13fa8e7262b4d46a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c781450672b3b497d0e46b21aa320a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#ac2c781450672b3b497d0e46b21aa320a">Accept</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:ac2c781450672b3b497d0e46b21aa320a"><td class="mdescLeft">&#160;</td><td class="mdescRight">接收套接字  <a href="class_c_epoll_service.html#ac2c781450672b3b497d0e46b21aa320a">更多...</a><br /></td></tr>
<tr class="separator:ac2c781450672b3b497d0e46b21aa320a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c9a67004c821066cf6fdbaade29b0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a57c9a67004c821066cf6fdbaade29b0a">Connect</a> (<a class="el" href="struct_socket_data.html">SocketData</a> &amp;sockdata, <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="memdesc:a57c9a67004c821066cf6fdbaade29b0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">连接套接字  <a href="class_c_epoll_service.html#a57c9a67004c821066cf6fdbaade29b0a">更多...</a><br /></td></tr>
<tr class="separator:a57c9a67004c821066cf6fdbaade29b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af71376c3ee42601993b7652fc9a2b5e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#af71376c3ee42601993b7652fc9a2b5e3">HandleComplete</a> (<a class="el" href="class_s_list.html">SList</a>&lt; <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> &gt; &gt; &amp;os)</td></tr>
<tr class="memdesc:af71376c3ee42601993b7652fc9a2b5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理完成任务  <a href="class_c_epoll_service.html#af71376c3ee42601993b7652fc9a2b5e3">更多...</a><br /></td></tr>
<tr class="separator:af71376c3ee42601993b7652fc9a2b5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e83204edd2a4c64042b4757b9f3b261"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_sock_error.html">CSockError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a1e83204edd2a4c64042b4757b9f3b261">SetTimer</a> (<a class="el" href="tools_8h.html#adbfeae90dcbc6d1e23fc52bb64339f46">DWORD64</a> timeout)</td></tr>
<tr class="memdesc:a1e83204edd2a4c64042b4757b9f3b261"><td class="mdescLeft">&#160;</td><td class="mdescRight">更新超时时间  <a href="class_c_epoll_service.html#a1e83204edd2a4c64042b4757b9f3b261">更多...</a><br /></td></tr>
<tr class="separator:a1e83204edd2a4c64042b4757b9f3b261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac780dddbc3041753e03d44f2edea900"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#aac780dddbc3041753e03d44f2edea900">HandleClose</a> (<a class="el" href="class_c_socket.html">CSocket</a> &amp;sock)</td></tr>
<tr class="memdesc:aac780dddbc3041753e03d44f2edea900"><td class="mdescLeft">&#160;</td><td class="mdescRight">处理关闭事件  <a href="class_c_epoll_service.html#aac780dddbc3041753e03d44f2edea900">更多...</a><br /></td></tr>
<tr class="separator:aac780dddbc3041753e03d44f2edea900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa830350c7f43915ed3d48c9bf23b6951"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#aa830350c7f43915ed3d48c9bf23b6951">HandleAcceptIpc</a> (<a class="el" href="struct_socket_data.html">SocketData</a> *sockdata)</td></tr>
<tr class="separator:aa830350c7f43915ed3d48c9bf23b6951"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">处理接收、连接事件</div></td></tr>
<tr><td colspan="2"><div class="groupText"><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">waitAccepts</td><td>投递的接收队列 </td></tr>
    <tr><td class="paramname">events</td><td>事件类型 </td></tr>
    <tr><td class="paramname">ec</td><td>设置的错误码 </td></tr>
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回处理的io投递数量 </dd></dl>
</div></td></tr>
<tr class="memitem:acfa79d1dae22d2562604336469586e7f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#acfa79d1dae22d2562604336469586e7f">HandleAccept</a> (std::list&lt; <a class="el" href="struct_socket_data.html">SocketData</a> * &gt; &amp;waitAccepts, uint32_t events, const <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;ec)</td></tr>
<tr class="separator:acfa79d1dae22d2562604336469586e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42488e079f28df749d7d6987a4ec1aa2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a42488e079f28df749d7d6987a4ec1aa2">HandleConnect</a> (uint32_t events, <a class="el" href="struct_socket_data.html">SocketData</a> *sockdata)</td></tr>
<tr class="separator:a42488e079f28df749d7d6987a4ec1aa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_c_io_port_service"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_io_port_service')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="class_c_io_port_service.html">CIoPortService</a></td></tr>
<tr class="memitem:aaba7ef56add86b61b7d3d95ac95b00bc inherit pro_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aaba7ef56add86b61b7d3d95ac95b00bc">SetIoBuffer</a> (<a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *io, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> status, const char *first, const char *end, <a class="el" href="class_c_sock_addr.html">CSockAddr</a> *addr, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker)</td></tr>
<tr class="separator:aaba7ef56add86b61b7d3d95ac95b00bc inherit pro_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31f5b0cd661829a0772d69f2558cf9c7 inherit pro_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a31f5b0cd661829a0772d69f2558cf9c7">SetIoBuffer</a> (<a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *io, <a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> status, const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;func, void *invoker)</td></tr>
<tr class="separator:a31f5b0cd661829a0772d69f2558cf9c7 inherit pro_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78ca0acac3a2f3ca5890cc9db01a2dfe inherit pro_methods_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a78ca0acac3a2f3ca5890cc9db01a2dfe">ClearAllDeque</a> ()</td></tr>
<tr class="separator:a78ca0acac3a2f3ca5890cc9db01a2dfe inherit pro_methods_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:a96a25e3a40e31c457ce09acf54def4db"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">IoType</a> { <br />
&#160;&#160;<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dba79dbc282910419b4abeaec0980a84648">Io_Succ</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dba01d75b7e463e6065067355dfe8046d77">NoData_Recv</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dba5e7fdb7e9e074538a494d6d569e94e3d">NoData_Write</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dbae79c4d0f1fd3e659dffcf0506a16458c">Overflow_Write</a>, 
<br />
&#160;&#160;<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dba344e6393e5442fe9aa5c0052c75d182d">Read_Write_Null</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dbac41b7f5c4dc4c9515637ed066186d839">No_Connect</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dbaf79260a3b998ef7754ad443f65341a6f">No_Accept</a>, 
<a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4dba84ba029abd95e2ded3c444785d49c108">Io_Error</a>
<br />
 }</td></tr>
<tr class="memdesc:a96a25e3a40e31c457ce09acf54def4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">接收所有数据  <a href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">更多...</a><br /></td></tr>
<tr class="separator:a96a25e3a40e31c457ce09acf54def4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a6556918aa00a0a3d85bb85b5f1667384"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_epoll_handle.html">EpollHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_epoll_service.html#a6556918aa00a0a3d85bb85b5f1667384">_hEpoll</a></td></tr>
<tr class="memdesc:a6556918aa00a0a3d85bb85b5f1667384"><td class="mdescLeft">&#160;</td><td class="mdescRight">epoll句柄  <a href="class_c_epoll_service.html#a6556918aa00a0a3d85bb85b5f1667384">更多...</a><br /></td></tr>
<tr class="separator:a6556918aa00a0a3d85bb85b5f1667384"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_attribs_class_c_io_port_service"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_class_c_io_port_service')"><img src="closed.png" alt="-"/>&#160;Public 属性 继承自 <a class="el" href="class_c_io_port_service.html">CIoPortService</a></td></tr>
<tr class="memitem:af2c36a2bd4d03cb124cdd6c9bef5bb3c inherit pub_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_recursive_mutex.html">CRecursiveMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#af2c36a2bd4d03cb124cdd6c9bef5bb3c">_mutexDeque</a></td></tr>
<tr class="separator:af2c36a2bd4d03cb124cdd6c9bef5bb3c inherit pub_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_io_port_service"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_io_port_service')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="class_c_io_port_service.html">CIoPortService</a></td></tr>
<tr class="memitem:a407c9ef3c1dba3149bfeee7a3efbbf01 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a407c9ef3c1dba3149bfeee7a3efbbf01">_bWriteLog</a></td></tr>
<tr class="separator:a407c9ef3c1dba3149bfeee7a3efbbf01 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ff69b422ec8562a5dee6b8f7cef5cc0 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a4ff69b422ec8562a5dee6b8f7cef5cc0">_bStop</a></td></tr>
<tr class="separator:a4ff69b422ec8562a5dee6b8f7cef5cc0 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a523d78403f114ad8b1750bf408f34084 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_tools_8h.html#ac7875a7f6984241a06892f7041b4d30a">SOCKIDEN</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a523d78403f114ad8b1750bf408f34084">_dwFlagId</a></td></tr>
<tr class="separator:a523d78403f114ad8b1750bf408f34084 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6cae804dc7cf92c7c79d9e0549c176 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a6a2b55a6391419ed0b7b9da06e094b4b">INT64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#abd6cae804dc7cf92c7c79d9e0549c176">_threadNum</a></td></tr>
<tr class="separator:abd6cae804dc7cf92c7c79d9e0549c176 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c2ca982c8e1aa9f810291b7de79468 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#aa0c2ca982c8e1aa9f810291b7de79468">_completeFunc</a></td></tr>
<tr class="separator:aa0c2ca982c8e1aa9f810291b7de79468 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4a7f39422d33ef77ca8ea89b749d613 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_sock_tools_8h.html#a65db86524d66ff5c871579e2dacf12ca">lpTimeoutCompleteFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ae4a7f39422d33ef77ca8ea89b749d613">_timeoutFunc</a></td></tr>
<tr class="separator:ae4a7f39422d33ef77ca8ea89b749d613 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc61fe79fcc2d07518bfa701bd2f779 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tools_8h.html#a01e895c2df346ffe662bbe69686d8d51">SYNCHANDLE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a3dc61fe79fcc2d07518bfa701bd2f779">_hWaitServerStop</a></td></tr>
<tr class="separator:a3dc61fe79fcc2d07518bfa701bd2f779 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a922c83ecaab9ff0ce743d6e4f60d243f inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_s_list.html">SList</a>&lt; <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#a922c83ecaab9ff0ce743d6e4f60d243f">_ioCompletes</a></td></tr>
<tr class="separator:a922c83ecaab9ff0ce743d6e4f60d243f inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab735af8e6a6f6a5a4491afae96e3c9f7 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_timeout_manager.html">TimeoutManager</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ab735af8e6a6f6a5a4491afae96e3c9f7">_ManagerTimeout</a></td></tr>
<tr class="separator:ab735af8e6a6f6a5a4491afae96e3c9f7 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac73a13df92eb91e9d6878236f4349d59 inherit pro_attribs_class_c_io_port_service"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_signal_init.html">CSignalInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_io_port_service.html#ac73a13df92eb91e9d6878236f4349d59">_linuxInit</a></td></tr>
<tr class="separator:ac73a13df92eb91e9d6878236f4349d59 inherit pro_attribs_class_c_io_port_service"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock">
<p class="definition">在文件 <a class="el" href="_epoll_service_8h_source.html">EpollService.h</a> 第 <a class="el" href="_epoll_service_8h_source.html#l00023">23</a> 行定义.</p>
</div><h2 class="groupheader">成员枚举类型说明</h2>
<a id="a96a25e3a40e31c457ce09acf54def4db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96a25e3a40e31c457ce09acf54def4db">&#9670;&nbsp;</a></span>IoType</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>接收所有数据 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">buff</td><td>接收缓冲 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误码 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回 </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dba79dbc282910419b4abeaec0980a84648"></a>Io_Succ&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dba01d75b7e463e6065067355dfe8046d77"></a>NoData_Recv&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dba5e7fdb7e9e074538a494d6d569e94e3d"></a>NoData_Write&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dbae79c4d0f1fd3e659dffcf0506a16458c"></a>Overflow_Write&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dba344e6393e5442fe9aa5c0052c75d182d"></a>Read_Write_Null&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dbac41b7f5c4dc4c9515637ed066186d839"></a>No_Connect&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dbaf79260a3b998ef7754ad443f65341a6f"></a>No_Accept&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96a25e3a40e31c457ce09acf54def4dba84ba029abd95e2ded3c444785d49c108"></a>Io_Error&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">在文件 <a class="el" href="_epoll_service_8h_source.html">EpollService.h</a> 第 <a class="el" href="_epoll_service_8h_source.html#l00025">25</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">构造及析构函数说明</h2>
<a id="aa366ff9aadad69874c0e95b240e938ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa366ff9aadad69874c0e95b240e938ed">&#9670;&nbsp;</a></span>CEpollService() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CEpollService::CEpollService </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a>&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00033">33</a> 行定义.</p>

</div>
</div>
<a id="a8ff2b58b1671926d4338676ea7b839e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ff2b58b1671926d4338676ea7b839e9">&#9670;&nbsp;</a></span>CEpollService() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CEpollService::CEpollService </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_sock_data_8h.html#ae8573b45542da05c99e8e2154032d606">IoCompleteFunc</a>&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00043">43</a> 行定义.</p>

</div>
</div>
<a id="ac914cf8f32c5971a0a710b317887a29d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac914cf8f32c5971a0a710b317887a29d">&#9670;&nbsp;</a></span>~CEpollService()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CEpollService::~CEpollService </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00057">57</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="ac2c781450672b3b497d0e46b21aa320a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2c781450672b3b497d0e46b21aa320a">&#9670;&nbsp;</a></span>Accept()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::Accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>接收套接字 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误信息 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功返回Io_Succ,失败返回其它相应值 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00544">544</a> 行定义.</p>

</div>
</div>
<a id="abbcbcf16e1a3c89c423a04b767a1e2b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbcbcf16e1a3c89c423a04b767a1e2b1">&#9670;&nbsp;</a></span>AutoRecv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::AutoRecv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>自动选择调用Recv/Recvform函数 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00526">526</a> 行定义.</p>

</div>
</div>
<a id="a305f7df841b6f25c13fa8e7262b4d46a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a305f7df841b6f25c13fa8e7262b4d46a">&#9670;&nbsp;</a></span>AutoSend()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::AutoSend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>自动选择调用Send/SendTo函数 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00535">535</a> 行定义.</p>

</div>
</div>
<a id="a9fa3df69807bd345c91be5ccaebe51cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fa3df69807bd345c91be5ccaebe51cd">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> CEpollService::Close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>关闭套接字,并解除与服务类的绑定 </p>
<dl class="section return"><dt>返回</dt><dd>成功返回0，失败返回其它值 </dd></dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a3de4a75423e43c4100831feee1c67406">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00778">778</a> 行定义.</p>

</div>
</div>
<a id="a57c9a67004c821066cf6fdbaade29b0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57c9a67004c821066cf6fdbaade29b0a">&#9670;&nbsp;</a></span>Connect()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::Connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>连接套接字 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>返回的已连接的套接字类 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误信息 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功返回Io_Succ,失败返回其它相应值 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00568">568</a> 行定义.</p>

</div>
</div>
<a id="a4b686add2271b0663112d6f854229ffc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b686add2271b0663112d6f854229ffc">&#9670;&nbsp;</a></span>DeliveryRecv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::DeliveryRecv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_addr.html">CSockAddr</a> *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个接收请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>监听到的套接字 </td></tr>
    <tr><td class="paramname">first</td><td>接收缓冲首地址 </td></tr>
    <tr><td class="paramname">end</td><td>接收缓冲尾地址 </td></tr>
    <tr><td class="paramname">func</td><td>完成函数指针 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a258367c891c1b3f4208c7b41e95b864d">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00741">741</a> 行定义.</p>

</div>
</div>
<a id="a2b4f22eb37444814e94c03c9e360bc41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b4f22eb37444814e94c03c9e360bc41">&#9670;&nbsp;</a></span>DeliveryWrite()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::DeliveryWrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_addr.html">CSockAddr</a> *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个写请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>已连接的套接字 </td></tr>
    <tr><td class="paramname">first</td><td>发送缓冲首地址 </td></tr>
    <tr><td class="paramname">end</td><td>发送缓冲尾地址 </td></tr>
    <tr><td class="paramname">addr</td><td>地址信息，UDP专用，若为NULL，则使用send函数进行投递，否则使用sendto函数进行投递 </td></tr>
    <tr><td class="paramname">func</td><td>完成函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户数据 </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a61ce383d1dc8faf0f821237e4cc438cf">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00686">686</a> 行定义.</p>

</div>
</div>
<a id="a4a98628adcd1758a791c97b4aa9acc27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a98628adcd1758a791c97b4aa9acc27">&#9670;&nbsp;</a></span>DelTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::DelTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>tinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>删除定时器 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a6a56a2a5a014ee11d4696eac5096d198">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00280">280</a> 行定义.</p>

</div>
</div>
<a id="acfa79d1dae22d2562604336469586e7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfa79d1dae22d2562604336469586e7f">&#9670;&nbsp;</a></span>HandleAccept()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleAccept </td>
          <td>(</td>
          <td class="paramtype">std::list&lt; <a class="el" href="struct_socket_data.html">SocketData</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>waitAccepts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>events</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00847">847</a> 行定义.</p>

</div>
</div>
<a id="aa830350c7f43915ed3d48c9bf23b6951"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa830350c7f43915ed3d48c9bf23b6951">&#9670;&nbsp;</a></span>HandleAcceptIpc()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleAcceptIpc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> *&#160;</td>
          <td class="paramname"><em>sockdata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00826">826</a> 行定义.</p>

</div>
</div>
<a id="aac780dddbc3041753e03d44f2edea900"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac780dddbc3041753e03d44f2edea900">&#9670;&nbsp;</a></span>HandleClose()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleClose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理关闭事件 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>待关闭的套接字 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回处理成功的io投递数量 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l01074">1074</a> 行定义.</p>

</div>
</div>
<a id="af71376c3ee42601993b7652fc9a2b5e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af71376c3ee42601993b7652fc9a2b5e3">&#9670;&nbsp;</a></span>HandleComplete()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleComplete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_s_list.html">SList</a>&lt; <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理完成任务 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l01055">1055</a> 行定义.</p>

</div>
</div>
<a id="a42488e079f28df749d7d6987a4ec1aa2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42488e079f28df749d7d6987a4ec1aa2">&#9670;&nbsp;</a></span>HandleConnect()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleConnect </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>events</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> *&#160;</td>
          <td class="paramname"><em>sockdata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00889">889</a> 行定义.</p>

</div>
</div>
<a id="a33fea86a364b148b7ddc5102ce9a47ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33fea86a364b148b7ddc5102ce9a47ae">&#9670;&nbsp;</a></span>HandleError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleError </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> *&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct epoll_event *&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CSockError::ErrorType&#160;</td>
          <td class="paramname"><em>setError</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理错误、关闭事件 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">event</td><td>事件类型 </td></tr>
    <tr><td class="paramname">setError</td><td>设置的错误码 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回处理的io投递数量 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00978">978</a> 行定义.</p>

</div>
</div>
<a id="a99a9df7333d02353319ef17e201a4c15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99a9df7333d02353319ef17e201a4c15">&#9670;&nbsp;</a></span>HandleRead()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleRead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> *&#160;</td>
          <td class="paramname"><em>sockdata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理读完成事件 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回处理的io投递数量 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00924">924</a> 行定义.</p>

</div>
</div>
<a id="ab45f03755c3e55096572f0e53de87468"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab45f03755c3e55096572f0e53de87468">&#9670;&nbsp;</a></span>HandleTimeout()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleTimeout </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isTimeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理超时时间 </p>
<dl class="section return"><dt>返回</dt><dd>返回处理的io投递数量 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l01006">1006</a> 行定义.</p>

</div>
</div>
<a id="ac6c36cf61efb5d0ccfe983063bec046a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6c36cf61efb5d0ccfe983063bec046a">&#9670;&nbsp;</a></span>HandleWrite()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> CEpollService::HandleWrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> *&#160;</td>
          <td class="paramname"><em>sockdata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>处理写完成事件 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字缓冲 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回处理的io投递数量 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00951">951</a> 行定义.</p>

</div>
</div>
<a id="a19230174f8ba4395276b43be2f0b93c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19230174f8ba4395276b43be2f0b93c3">&#9670;&nbsp;</a></span>Init() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_sock_error.html">CSockError</a> CEpollService::Init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>初始化EPOLL事件等 </p>
<dl class="section return"><dt>返回</dt><dd>成功返回SUCC,失败返回相应的错误码 </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00139">139</a> 行定义.</p>

</div>
</div>
<a id="a79758f99ea45dc977a6962df8377347f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79758f99ea45dc977a6962df8377347f">&#9670;&nbsp;</a></span>Init() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_sock_error.html">CSockError</a> CEpollService::Init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isServer</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>将sock与tcp绑定，一个socket只能绑定一个tcp服务类 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>待绑定的套接字类 </td></tr>
    <tr><td class="paramname">isServer</td><td>初始化类型 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功返回SUCC，失败返回相应的错误码 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>如果isServer为true，则该函数将一个受监听的套接字与服务类进行绑定； 如果为false则绑定一个accept返回的套接字 </dd></dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#afc1a07c4cf6e9aa6f2a00d157dfd9eed">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00177">177</a> 行定义.</p>

</div>
</div>
<a id="acc6b0ae9e8d9b39cf2a9f9c1a23ef522"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc6b0ae9e8d9b39cf2a9f9c1a23ef522">&#9670;&nbsp;</a></span>IsInit()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CEpollService::IsInit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>判断服务是否停止 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a4e27edba8096659e67f2f275eeeba984">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00347">347</a> 行定义.</p>

</div>
</div>
<a id="a66ee6d1089bf2cd40f7a1417e3a3b4c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66ee6d1089bf2cd40f7a1417e3a3b4c7">&#9670;&nbsp;</a></span>IsStop()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CEpollService::IsStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>判断服务是否停止 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a87b609526def283ffb20cc4b4c082473">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00342">342</a> 行定义.</p>

</div>
</div>
<a id="a422f78fde0b5a097ceec14c26fa58827"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a422f78fde0b5a097ceec14c26fa58827">&#9670;&nbsp;</a></span>NotifyStop()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::NotifyStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>通知服务停止 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a88ce9281be3952a469f8c3b6bf0f9d5b">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00352">352</a> 行定义.</p>

</div>
</div>
<a id="a525a96b60426d812c6146efb866b9279"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a525a96b60426d812c6146efb866b9279">&#9670;&nbsp;</a></span>Post()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::Post </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code><a class="el" href="tools_8h.html#ab689500aaec0db066e3ac9483d3fe425">NullPtr</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个中断请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户数据 </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a2b82286514aa89ecd2a7470047c4845e">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00331">331</a> 行定义.</p>

</div>
</div>
<a id="abe35841d40c730849a20e57ce608fe88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe35841d40c730849a20e57ce608fe88">&#9670;&nbsp;</a></span>PostAcceptEx()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::PostAcceptEx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>svrSock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>cliSock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个接收连接请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">svrSock</td><td>受监听的套接字 </td></tr>
    <tr><td class="paramname">cliSock</td><td>待接收的套接字 </td></tr>
    <tr><td class="paramname">func</td><td>完成回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#aa9c6a13fde3ceae6b494568242681714">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00601">601</a> 行定义.</p>

</div>
</div>
<a id="ae09328d21d7bb9c8a88412b05f8219ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae09328d21d7bb9c8a88412b05f8219ed">&#9670;&nbsp;</a></span>PostCompleteEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_sock_error.html">CSockError</a> CEpollService::PostCompleteEvent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>发送中断事件通知 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00119">119</a> 行定义.</p>

</div>
</div>
<a id="ad323799c02b088b56a557dd1a91c6ac1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad323799c02b088b56a557dd1a91c6ac1">&#9670;&nbsp;</a></span>PostConnectEx()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::PostConnectEx </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_socket.html">CSocket</a> &amp;&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_shared_ptr.html">SharedPtr</a>&lt; <a class="el" href="class_handle_base.html">HandleBase</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>invoker</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>投递一个连接请求 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sock</td><td>待连接的套接字 </td></tr>
    <tr><td class="paramname">func</td><td>完成回调函数 </td></tr>
    <tr><td class="paramname">invoker</td><td>用户传入的数据 </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#af9546027933d2fcfcdc31b9366308ec3">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00632">632</a> 行定义.</p>

</div>
</div>
<a id="a61e294f650498651530038e824c661f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61e294f650498651530038e824c661f0">&#9670;&nbsp;</a></span>Recv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::Recv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00447">447</a> 行定义.</p>

</div>
</div>
<a id="a651d7cd9f69f52769ede1541b094d076"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a651d7cd9f69f52769ede1541b094d076">&#9670;&nbsp;</a></span>Recvfrom()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::Recvfrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>接收udp数据报文和地址信息 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">buf</td><td>接收缓冲 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误码 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回IoType枚举值 </dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db" title="接收所有数据">CEpollService::IoType</a> </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00413">413</a> 行定义.</p>

</div>
</div>
<a id="a7a8de310d11154bfff2d98effa2bfca8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a8de310d11154bfff2d98effa2bfca8">&#9670;&nbsp;</a></span>RegisterEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_sock_error.html">CSockError</a> CEpollService::RegisterEvent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>events</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a>&#160;</td>
          <td class="paramname"><em>op</em> = <code>EPOLL_CTL_ADD</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00101">101</a> 行定义.</p>

</div>
</div>
<a id="a855635ef38f2ac3681883c4d04ba4caa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a855635ef38f2ac3681883c4d04ba4caa">&#9670;&nbsp;</a></span>Run()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CEpollService::Run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>运行服务 </p>
<dl class="section return"><dt>返回</dt><dd>成功返回true,失败返回false </dd></dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a56a9ae4bb89bd85e21ae5507e3c6b093">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l01164">1164</a> 行定义.</p>

</div>
</div>
<a id="af7843bae0a3a308e4ef61ef54d1e8071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7843bae0a3a308e4ef61ef54d1e8071">&#9670;&nbsp;</a></span>Run_One()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CEpollService::Run_One </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>运行服务,只运行一次 </p>
<dl class="section return"><dt>返回</dt><dd>成功返回true,失败返回false </dd></dl>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a8eb92d255bda145631e1dc57e42d3dba">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l01093">1093</a> 行定义.</p>

</div>
</div>
<a id="a6c4cb070c67f1b5bc848566c664d547f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c4cb070c67f1b5bc848566c664d547f">&#9670;&nbsp;</a></span>Send()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::Send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>发送数据 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">buff</td><td>发送缓冲 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误码 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回IoType枚举值: </dd></dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db" title="接收所有数据">CEpollService::IoType</a> </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00365">365</a> 行定义.</p>

</div>
</div>
<a id="a49ebca36e1c2c905100e90c6ec6b21e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49ebca36e1c2c905100e90c6ec6b21e7">&#9670;&nbsp;</a></span>SendTo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db">CEpollService::IoType</a> CEpollService::SendTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_socket_data.html">SocketData</a> &amp;&#160;</td>
          <td class="paramname"><em>sockdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_o_v_e_r_l_a_p_p_e_d___e_x.html">OVERLAPPED_EX</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_c_sock_error.html">CSockError</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>发送udp报文数据 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sockdata</td><td>套接字数据 </td></tr>
    <tr><td class="paramname">buf</td><td>发送缓冲 </td></tr>
    <tr><td class="paramname">ec</td><td>返回的错误码 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>参见</dt><dd><a class="el" href="class_c_epoll_service.html#a96a25e3a40e31c457ce09acf54def4db" title="接收所有数据">CEpollService::IoType</a> </dd></dl>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00494">494</a> 行定义.</p>

</div>
</div>
<a id="a1e83204edd2a4c64042b4757b9f3b261"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e83204edd2a4c64042b4757b9f3b261">&#9670;&nbsp;</a></span>SetTimer() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_c_sock_error.html">CSockError</a> CEpollService::SetTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tools_8h.html#adbfeae90dcbc6d1e23fc52bb64339f46">DWORD64</a>&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>更新超时时间 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00211">211</a> 行定义.</p>

</div>
</div>
<a id="afc23d484e502e76a9e7710038e822e53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc23d484e502e76a9e7710038e822e53">&#9670;&nbsp;</a></span>SetTimer() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CEpollService::SetTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>设置一个定时器 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#a5ffa1d9379ae7595d2febd119f42a738">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00231">231</a> 行定义.</p>

</div>
</div>
<a id="ad23338defe1ba3a98a4e4516549161e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad23338defe1ba3a98a4e4516549161e2">&#9670;&nbsp;</a></span>Shutdown()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_find_file_8h.html#a37cc1038758216808d5f75090b093c9a">int</a> CEpollService::Shutdown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>停止服务 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#ae247b9ad53c577481a6a17713e6a0685">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00063">63</a> 行定义.</p>

</div>
</div>
<a id="a2157c1dd183cde8099b87c460ca2188c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2157c1dd183cde8099b87c460ca2188c">&#9670;&nbsp;</a></span>UpdateTimer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CEpollService::UpdateTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_timer_info_8h.html#a3cdb46a4463fd5c4c305382491ab3e41">TimerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>tinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>更新定时器 </p>

<p>实现了 <a class="el" href="class_c_io_port_service.html#ac30315805f5476c9e5ff36f3fa542485">CIoPortService</a>.</p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a> 第 <a class="el" href="_epoll_service_8cpp_source.html#l00287">287</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a6556918aa00a0a3d85bb85b5f1667384"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6556918aa00a0a3d85bb85b5f1667384">&#9670;&nbsp;</a></span>_hEpoll</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_epoll_handle.html">EpollHandle</a> CEpollService::_hEpoll</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>epoll句柄 </p>

<p class="definition">在文件 <a class="el" href="_epoll_service_8h_source.html">EpollService.h</a> 第 <a class="el" href="_epoll_service_8h_source.html#l00283">283</a> 行定义.</p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>H:/project/LibTools/src/socket/internal/<a class="el" href="_epoll_service_8h_source.html">EpollService.h</a></li>
<li>H:/project/LibTools/src/socket/internal/<a class="el" href="_epoll_service_8cpp_source.html">EpollService.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>
